V = int(input()); P = [[*map(int, input().split())] for _ in range(V)]; G = [((P[i][0]-P[j][0])**2+(P[i][1]-P[j][1])**2+(P[i][2]-P[j][2])**2)**.5 if i!=j else 1e9 for i in range(V) for j in range(V)]; C = {1<0)] > -1: return D[z] if not bm: return 0 if z%2 and op%2 else G[n*V] bm2 = bm; x = 1e9 while bm2: nxt = bm2&-bm2 if z%2 and op&nxt: x = min(x, dp(C[nxt], bm^nxt, op^nxt^(1<